from re import search

import requests
"""requests库"""""

# requests库 是 python的 http三方库，可以发送和接受http/https的请求
# 用途：接口自动化/爬虫

'''如何使用requests库发送请求'''
# 提供了几个函数 来 发送不同 方式的请求
# get、post、put、delete

# 发送get请求
# requests.get(url,params) url就是请求地址，params 就是路径参数

# 不同类型的请求 本质上使用的都是 request() 函数  都用request来请求，只不过多了一个请求类型
# search_goods_req = requests.request(url = 'http://47.95.213.187:8899/api/products', method='get',
#                        params={'keyword': '手机', 'page': 1, 'limit': 8})
# (search_good_req是定义的变量名)
# 形参 headers传递请求头的
# 形参 json 是传递 json格式的请求体的

'''发送请求体是json的接口'''
# 登录接口的请求四要素
login_req_data = {
    'url':'http://101.201.173.9:8899/api/login',
    'method':'post',
    'json':{"account":"13134227810","password":"Whx200106"},
    'headers':{'content-type':'application/json'}
}
login_req = requests.request(**login_req_data) # 发送登录请求，它的返回是一个 响应类
# 这样传参有个前提是名称一致，把字典里面的所有元素解包
# print(type(login_req)) # requests.Response 响应类

'''响应类的操作'''
# 响应状态码
print(login_req.status_code)

# 响应状态信息
# print(login_req.reason)

# 响应体
# json格式的响应体
# login_req.json()查看json格式的响应体
# print(login_req.json().get('msg'))  以字典的形式提取变量用get
# 如果响应体不是json那就以文本格式查看响应体
# print(login_req.text)是字符串str

# 响应头
# print(login_req.headers)

# 响应时间
# print(login_req.elapsed.total_seconds()*1000)

# 本次请求的请求地址
# print(login_req.request.url)
# 本次请求的请求方式
# print(login_req.request.method)
# 本次请求的请求头
# print(login_req.request.headers)
# 本次请求的请求体
# print(login_req.request.body)


'''发送的接口参数是路径参数'''
# search_goods_req_data = {
#     'url': 'http://47.95.213.187:8899/api/products',
#     'method': 'get',
#     'params':{'keyword':'手机','page':1,'limit':8},
#     'headers': {'content-type': 'application/json'}
# }
# search_goods_req = requests.request(**search_goods_req_data)
# print(search_goods_req.json())//json格式的响应体

'''发送的接口涉及到上传文件'''
# upload_img_req_data = {
#     'url':'http://47.95.213.187:8899/api/upload/image',
#     'method':'post',
#     'headers':{'Authori-zation':'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI0Ny45NS4yMTMuMTg3Ojg4OTkiLCJhdWQiOiI0Ny45NS4yMTMuMTg3Ojg4OTkiLCJpYXQiOjE3NTIxMjg2OTksIm5iZiI6MTc1MjEyODY5OSwiZXhwIjoxNzU0NzIwNjk5LCJqdGkiOnsiaWQiOjIsInR5cGUiOiJhcGkifX0.32dHWvKcFfTOffDTGTMm-TLCuBUUSuTYOOP8SEvYUw4'},
#     'data':{'filename':'pics'},//请求体表单data,图片不能放data里，不上传文件放在data里，上传放在files 里
#     'files':{'pics':open('./Snipaste_2025-07-23_16-51-01.png','rb')}//传图片，以字节的形式，open转字节型
#
# # }
# upload_img_req = requests.request(**upload_img_req_data)
# print(upload_img_req.request.body)//看请求体
# print(upload_img_req.json())


